home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 9 / af009.adf / VirusX 4.0 / VirusX.Doc < prev    next >
Text File  |  1987-08-27  |  28KB  |  848 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                                 VirusX 4.0
  22.  
  23.                                     by
  24.  
  25.                         Steve Tibbett and Dan James
  26.  
  27.  
  28.                                Documentation
  29.  
  30.                                     by
  31.  
  32.                         Steve Tibbett and Jim Meyer
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                              Table of Contents
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    2
  80.  
  81. How To Use VirusX  . . . . . . . . . . . . . . . . . . . . . . . . . .    2
  82.  
  83. VirusX Options . . . . . . . . . . . . . . . . . . . . . . . . . . . .    3
  84.      Command Line Options  . . . . . . . . . . . . . . . . . . . . . .    3
  85.      Active Window Options . . . . . . . . . . . . . . . . . . . . . .    3
  86.  
  87. General Notes  . . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  88.      Mail  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  89.      Nut Alert . . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  90.      Distribution Notice . . . . . . . . . . . . . . . . . . . . . . .    4
  91.  
  92. A Tale of Two Viruses  . . . . . . . . . . . . . . . . . . . . . . . .    5
  93.      The Byte Bandit Virus . . . . . . . . . . . . . . . . . . . . . .    5
  94.      The IRQ Virus . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  95.  
  96. Technical and Developmental Notes  . . . . . . . . . . . . . . . . . .    8
  97.      SCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  98.      Byte Bandit . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  99.      Revenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  100.      Byte Warrior  . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  101.      North Star  . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  102.      Obelisk Softworks Crew  . . . . . . . . . . . . . . . . . . . . .    8
  103.      IRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  104.      Pentagon Circle . . . . . . . . . . . . . . . . . . . . . . . . .    8
  105.      SystemZ Virus Protector . . . . . . . . . . . . . . . . . . . . .    8
  106.      Lamer Exterminator  . . . . . . . . . . . . . . . . . . . . . . .    8
  107.      Graffiti  . . . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  108.      Old Northstar . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  109.      16 Bit Crew . . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  110.      DiskDoktor  . . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  111.      Australian Parasite . . . . . . . . . . . . . . . . . . . . . . .   10
  112.  
  113. Virus Notes  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.                                      1
  132.  
  133.  
  134.  
  135.                                - Overview -
  136.  
  137.     Viruses are a nasty fact of life for computer users, and Amiga users
  138. are not immune.  VirusX was created to give Amiga owners a simple and
  139. effective defense against these creatures.
  140.  
  141.      Viruses fall into two categories:  boot-block and other.  Boot-block
  142. viruses are so named because they live on the first two sectors of a disk,
  143. the boot-block.  When a disk is bootable (like Workbench), these sectors
  144. tell the operating system where to go to load AmigaDOS code.  A boot-block
  145. virus, however, points to its own code.  It makes sure that the virus is
  146. activated before the AmigaDOS code is loaded.  Even if this code is not
  147. malicious, this type of virus can still do damage.  Many game programs use
  148. the boot-block for their own code.  If a virus happens to over-write this
  149. code, the game will no longer work.  Most of the viruses found so far have
  150. been of the boot-block variety.
  151.  
  152.      The "other" viruses are relatively new, and are tricky to find. 
  153. These kinds of viruses attach themselves to programs, in some cases
  154. replacing them, and wedge their way into the system.
  155.  
  156.      VirusX is the best defense against these creatures.  I encourage you
  157. to give VirusX to anyone who might need it.  In particular, dealers and
  158. user groups should use VirusX.  These folks, with the amount of disk
  159. copying they do, are particularly vulnerable to viruses.
  160.  
  161.                              How To Use VirusX
  162.  
  163.      VirusX should be run as part of the Startup-Sequence.  To do this,
  164. simply use a text editor to modify your startup-sequence.  Add a line that
  165. simply says "VirusX", and make sure that VirusX is in your c: directory. 
  166. VirusX will open a small window to let you know it is there, and will
  167. automatically check any disk inserted into one of the 3.5" drives.
  168.  
  169.     (The startup-sequence is found in the S: directory of any
  170. AmigaDOS-standard boot disk, like Workbench.  If you don't know how to edit
  171. this file, refer to your Amiga manual, the AmigaDOS manual, or Rob Peck's
  172. book "The Amiga Companion.")
  173.  
  174.      If VirusX finds something suspicious, it will post a requestor
  175. warning the user of either a specific virus or a non-standard boot-block. 
  176. The user will be given the option to Remove or Ignore the potential virus. 
  177. WARNING:  A NON-STANDARD BOOT-BLOCK MAY NOT BE A VIRUS!  This may either be
  178. a virus that VirusX doesn't know about, or it may be a custom boot-block
  179. for a commercial program.  Make SURE that you know that the program is not
  180. using the boot-block for its own purposes before you re-write it.  VirusX
  181. will ask you if you are sure before it does anything.  (Programs which give
  182. you an AmigaDOS window are always safe to repair.)
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.                                      2
  198.  
  199.  
  200.  
  201.  
  202.                             - VirusX Options -
  203.  
  204.  
  205.                            Command Line Options
  206.  
  207.      When you first run VirusX, you have the following command-line
  208. options:
  209.  
  210.      -a   Make virusx window active when run
  211.      -c   Don't check the CoolCapture vectors
  212.      -k   Enable KickTagPtr checking 
  213.      -q   Check all floppies, then quit immediately
  214.      -r   Use this if you've 1 meg Chip RAM and using SetPatch -r
  215.      -x## Set window X position
  216.      -y## Set window Y position
  217.  
  218.      These commands are all given as arguments.  For example:
  219.  
  220. VIRUSX -a -x100 -y100
  221.  
  222.      These commands would run VirusX, make the window active, and put it at
  223. position 100,100 (on the left-and side, halfway down) of the Workbench
  224. screen.
  225.  
  226.  
  227.                            Active Window Options
  228.  
  229.      While VirusX is running, you may click on its titlebar with the left
  230. mouse-button and type the following commands:
  231.  
  232.  
  233.      I    Open the Info Window
  234.      C    Check all mounted floppies for viruses
  235.      ESC  Quit VirusX
  236.      #    Show bootblock in drive # (ie, 0 shows DF0:, 1 DF1: etc)
  237.  
  238.      Example:  Click in the VirusX window and type the number "1" - VirusX
  239. will examine the disk in DF1: and will display the contents of the boot-
  240. block.  This is not very useful any more, since most viruses do not contain
  241. any unencrypted text.  Repeating the command, changing the disk in the
  242. drive just checked, or clicking in the window with the right mouse-button
  243. will cause VirusX to shrink back to "titlebar" size.
  244.  
  245.      You can get VirusX to display information about how many disks it has
  246. checked and what it has found by clicking on the VirusX titlebar with the
  247. right mouse-button.  Clicking again will close the window.
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.                                      3
  264.  
  265.  
  266.  
  267.  
  268.                              - General Notes -
  269.  
  270.                                    Mail
  271.  
  272.      The best way to contact me is through the electronic network     
  273. services listed below.  I've gotten far more VirusX-related mail than 
  274. I thought possible, making it impossible for me to respond to "regular" mail.
  275.  
  276.  
  277.                                  Nut Alert
  278.  
  279. There will be people who are thinking that I am some nut case trying to
  280. spread my own virus hidden under the guise of a virus checker.  Well, just
  281. for you, I've included the C source code.  Please, if you don't trust me,
  282. don't brand a useful utility as untrustworthy for no reason, CHECK THE
  283. SOURCE!  Recompile it if you think I'm trying to slip a fast one by you.  I
  284. just want to see viruses out of all our lives.
  285.  
  286.                             Distribution Notice
  287.  
  288.      This program is Copyrighted, but is freely redistributable (It's NOT
  289. Shareware).  Do what you want with it, but  Please don't use it for evil
  290. purposes. That's what I'm trying to prevent.  
  291.  
  292.      If you are not sure that this is the most current version of VirusX,
  293. you should check with the following sources:  The AmigaZone (American
  294. People/Link Network), BIX, Compuserve, and/or AmigaWorld.  The latest
  295. version of VirusX is available for downloading from the aforementioned
  296. networks, or from AmigaWorld for the price of $5.00, for shipping and 
  297. handling.
  298.  
  299.  
  300.  
  301.      I can be reached on BIX as "s.tibbett" and on People/Link as "SteveX". 
  302. I'm also on Compuserve, but with their dumb numbering system, I can never
  303. remember who I am.
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.                                      4
  330.  
  331.  
  332.  
  333.  
  334.                          - A Tale of Two Viruses -
  335.  
  336.  
  337.  
  338.                            The Byte Bandit Virus
  339.  
  340.     The Byte Bandit virus, once in memory, copies itself to a point just
  341. above the high memory pointer on the first hunk of RAM it can find. This
  342. means that it's not always in the same place.  It then wedges itself into
  343. the Interrupt Server chain, into the vectors of  Trackdisk.device, and
  344. creates a Resident structure for itself so it can hang around after reboot.
  345.  
  346.      It watches EVERY disk inserted, and will write itself to ANY bootable
  347. disk that is inserted!
  348.  
  349.      Also, if you Install a disk while this virus is active, it will copy
  350. itself back to the disk.  This is why it has to be wiped out from memory.
  351.  
  352.      When VirusX finds this virus on a disk, it will also display a "Copy
  353. Count." This represents the number of disks which have been infected by
  354. that "Branch" on the "Tree" that the virus is on.  If you infect a disk
  355. with your copy, and your copy is number 300, then that copy will be #301. 
  356. If that copy infects somebody, that will be #302, but on YOUR copy, two
  357. infections down the line, there will be another #302.  The copy count on MY
  358. Byte Bandit virus was #879.
  359.  
  360.      Note that VirusX will check RAM for this virus as well as the disk. 
  361. This was necessary, as you can tell from the description above.
  362.  
  363.      Special thanks must go here to Dave Hewett, who, 2 days after I gave
  364. him a copy of the virus, gave me a printed, commented disassembly of the
  365. virus with meaningful labels and everything I needed to stomp it - Thanks
  366. Dave!
  367.  
  368.      Thanks must also go to Bruce Dawson of CygnusSoft Software, (author of
  369. that great program, CygnusEd), who went to the trouble of being the First
  370. person to send me this Virus.
  371.  
  372.  
  373.                                The IRQ Virus
  374.  
  375.      The IRQ Virus is a recent Amiga Virus.  This one stands out from the
  376. crowd: it is NOT found in the boot block.
  377.  
  378.      This Virus attaches itself to executable programs.  It's prime target
  379. is the C:DIR command, but it will also look at your startup sequence and
  380. attach itself to the first executable program found in the startup-
  381. sequence.
  382.  
  383. A sample chain of events:
  384.  
  385.    - You download or otherwise acquire a new program.  This program
  386.      happens to be infected.
  387.    - You execute this program.
  388.    - The Virus then attaches itself to memory (by taking over the
  389.      OldOpenLibrary() vector) and adds a KickTagPtr (for no apparent
  390.      reason).
  391.    - Now, you're on DF0: and you run a program that uses the 
  392.      OldOpenLibrary() vector (hard to predict which ones do...).
  393.  
  394.  
  395.  
  396.  
  397.                                      5
  398.  
  399.  
  400.  
  401.      The Virus will open your startup sequence and pick the first
  402.      filename it sees.  If this file is executable it will write 
  403.      itself into that file.  IF it's not executable, it will try to
  404.      write to the DIR command on that disk.
  405.  
  406.      As you can see, this virus will only effect the first file mentioned
  407. in the startup sequence or the DIR command.  The only way this Virus could
  408. possibly spread via modem is through deliberate sabotage, unless the
  409. uploader actually DID have the program as the first thing in his startup
  410. sequence before sending it to you.
  411.  
  412.  
  413. WHAT IT DOES
  414.  
  415.      This Virus is mostly a harmless joke.  It does not appear to kill
  416. commercial programs or do anything malicious.  It's not nice to have
  417. around, but it's certainly better than a malicious virus!
  418.  
  419.      It changes the title bar of the Initial CLI window when you boot, and
  420. it will try to write to any disk inserted - thus bringing up the "Volume
  421. whatever is write protected" requester whenever you insert a write
  422. protected disk.  
  423.  
  424.      It will write itself to any disk from which you execute a file,
  425. overwriting either the DIR command or the first thing in the startup
  426. sequence.
  427.  
  428.      When this virus first installs itself (after reboot), it changes the
  429. title bar of the current window (usually the initial CLI window, since it
  430. IS the first thing in your startup sequence) to say something like
  431. "AmigaDOS Presents:  The IRQ Virus, V41.0".  This is a dead giveaway.
  432.  
  433.      This virus will not work under Kickstart 1.3 - you will get Software
  434. Error requesters whenever you run an infected program.  I'm not sure why,
  435. but this is probably good.
  436.  
  437. HOW TO KNOW IF YOU HAVE THIS VIRUS
  438.  
  439.      You cannot identify a file that has this virus in it just by looking
  440. at it.  The virus encrypts the text parts of itself, and encrypts it
  441. differently on each copy, making it impossible to recognize.  
  442.  
  443.      You can tell your system is infected if you put in a write protected
  444. workbench disk (or any disk that has a startup sequence), and the system
  445. brings up a "Volume <whatever> is write protected" requester.   This
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.                                      6
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471. indicates that this virus is in RAM attempting to infect your disk.
  472.  
  473.      Running VirusX 4.0 will tell you if this virus is in RAM, and VirusX
  474. will remove it from RAM.
  475. HOW TO GET RID OF THIS VIRUS
  476.  
  477.      To get the virus out of RAM, run VirusX 4.0.  It will tell you if it 
  478. found it, and that it removed it if it did.  VirusX will check disks the
  479. same way that the Virus does - it will look at the startup sequence,
  480. determine if the first file found (or the DIR command) is infected, and
  481. give you the option of repairing the the damage.  
  482.  
  483.      You can also get rid of this virus simply by deleting all infected
  484. programs and rebooting.  This virus will not hang around after a reboot. 
  485. Because this virus can hit a number of files, not all of which VirusX will
  486. find, I have included a small program by Dan James called KV - "KillVirus." 
  487. This program will check an entire directory's worth of files for this
  488. specific virus.  
  489.  
  490.      VirusX 4.0 will look in the same places as the Virus for infected
  491. programs.  If it finds one, it will pop up a window, tell you where it
  492. found it, and ask if it's OK to remove it.
  493.  
  494. HOW TO MAKE SURE YOU DON'T GET THIS VIRUS
  495.  
  496.      Keep VirusX 4.0 running when you test new programs.  VirusX will
  497. alert you as soon as it sees this virus appear in memory.  If VirusX finds
  498. this virus, it probably came from the last program you ran.
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.                                      7
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.                    - Technical and Developmental Notes -
  536.  
  537. SCA  - The SCA is the simplest virus to deal with, as it's not actually
  538. DOING anything except hiding in memory until you reboot.  We just look at
  539. CoolCapture and fix it to get it out of RAM.
  540.  
  541. BYTE BANDIT - The Byte Bandit virus takes the DoIO() vector and redirects
  542. it through itself.  Thus, any attempt to read or write the boot block (ie,
  543. AmigaDOS trying to figure out what kind of disk it is) results in Byte
  544. Bandit writing itself onto that disk.  VirusX couldn't just rewrite the
  545. boot block; it has to get Byte Bandit out of RAM first.  This virus also
  546. has an interrupt that crashes the machine every 5 minutes or so after it's
  547. infected a few of your disks.  Ow.  It stays in memory not via the Capture
  548. vectors, but by a Resident module.
  549.  
  550. REVENGE - Basically, this is a Byte Bandit clone which brings up an
  551. obscene pointer a few minutes after you reboot.  We treat it much like the
  552. byte bandit.
  553.  
  554. BYTE WARRIOR - Jumps right into 1.2 Kickstart.  Won't work under 1.3. 
  555. Hangs around via Resident struct, and doesn't do any damage.       
  556.  
  557. NORTH STAR - Like SCA, hangs around via CoolCapture.  Killing CoolCapture
  558. kills the North Star.
  559.  
  560. OBELISK SOFTWORKS CREW - Hangs around via CoolCapture, also watches reads
  561. of DoIO().  It doesn't infect EVERY disk - only the ones you boot from.    
  562.  
  563. IRQ - This is the FIRST Non-Bootblock Virus.  It copies itself from place
  564. to place via the first executable program found in your startup-sequence. 
  565. It SetFunction's OldOpenLibrary(), has a KickTagPtr, and lives in the first
  566. hunk of an infected program.  Thanks go to Gary Duncan and Henrik Clausen
  567. for being the first to send this one to me!
  568.  
  569. PENTAGON CIRCLE - This one looks at the DoIO vector, and has a CoolCapture
  570. vector.  It will write itself over any virus inserted, but not onto
  571. anything else.  (Neat idea!).  No danger, easy to eliminate.  Holding left
  572. button while booting with this one shows different screen colour, but
  573. doesn't get rid of it.  Thanks go to Bill Seymour (CMIBILL on Plink) for
  574. sending me this one!
  575.  
  576. SYSTEMZ VIRUS PROTECTOR - I took this one out.  It's not really a 'Virus',
  577. in that it won't overwrite a disk without asking you first.  Besides, it
  578. seems a lot of people LIKE the SystemZ Virus Protector (though it isn't
  579. perfect).
  580.  
  581. LAMER EXTERMINATOR - THIS one was a bugger.  Yet another virus       
  582. aimed at hurting people.  Y'see, a Lamer is apparently the worst kind of
  583. pirate - one who doesn't crack software, doesn't write software, just
  584. collects names and addresses and collects and spreads software.   Lamers
  585. don't do anybody any good, and the guy behind this Virus took it upon
  586. himself to make their (and our) lives miserable.  This virus loads into RAM
  587.  
  588.  
  589.  
  590.  
  591.                                      8
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599. at a random location each time.  It is encrypted on the disk so you can't
  600. SEE the name of it, and it never actually SHOWS the name, but it's
  601. definitely there.  It changes the encryption key used each time it is
  602. written back to disk.
  603.      It has a counter and will wait until the machine has been reset 2
  604. times OR until 3 disks have been infected, and will then pick a DATA block
  605. (Only a DATA block - FFS disks are safe, I guess), randomly, and will write
  606. the word 'LAMER!' all through it.  This is obviously not good, and will
  607. cause  random disk errors.  This is the worst kind of havoc to wreak on the
  608. new user - and this virus is EVERYWHERE!  I've gotten it from 5 people in
  609. the last week alone (all from different countries!  Ack!).  Anyway, credit
  610. for being the first with this one goes to Christian Schneider.  Thanks,
  611. Christian!
  612.      This virus sets up a Resident structure, but never sets the Match Word.
  613. Either this means we don't need the MatchWord or it means his
  614. SumKickData() is doing the recovery job - either way, it's  new!  3 points
  615. for originality.      
  616.  
  617. GRAFFITI - The first virus to come with rotating 3-d graphics!  It's neat -
  618. you might want to trigger it, though I'm not sure how, before nuking it. 
  619. This one just sets CoolCapture(), does something with DoIO() during the
  620. reboot, and sets it back to normal before anybody gets to look at it. 
  621. Lots of code is taken by the graphics stuff.  I just clear the CoolCapture
  622. vector.  [yawn]
  623.  
  624. OLD NORTHSTAR - Poof.
  625.  
  626. 16 BIT CREW - Well, I didn't actually have to DO anything to get   VirusX
  627. to recognize it, because it seems to operate like the Graffiti Virus.  If
  628. the 16 bit crew is in RAM, VirusX will say it removed the Graffiti virus. 
  629.  
  630. DISKDOKTOR - I spent more time on this one than on any other.  Y'see, this
  631. virus does lots of things.  The first one, for some reason, was quite funny
  632. to me.  It waits until you have rebooted 5 times.  Each time you reboot
  633. after that, the virus eats 10K times the total number of reboots.  After
  634. rebooting 10 times, you would be short about 100K.  This virus also starts
  635. up another TASK.  I'm not exactly sure when it happens, but another task
  636. named 'clipboard.device' will appear at a priority of -120, and will
  637. continually bash the Virus' vectors into the Coldcapture, Coolcapture,
  638. Warmcapture (which it sets to $ff000000 just to annoy), and the DoIO()
  639. vector. 
  640.      When I was working on this one, I figured I just had to restore the
  641. old values to the DoIO() vector, but as soon as I did so, the Virus
  642. restored them.  Since I hadn't disassembled the entire thing, I didn't
  643. realize this until I wasted time looking for other faults.  This one also
  644. allocates some memory, copies some code out of Exec into this memory, and
  645. executes it.  I never bothered to figure out why - Once it's gone, it's
  646. gone.
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.                                      9
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666. AUSTRALIAN PARASITE -  Hey - I like this one!  It says it will not destroy
  667. game bootsectors or corrupt disks, but it's still a Virus.  What makes this
  668. one unique is the way it lets itself be known.  After so many disk accesses
  669. (something like 600 blocks read off of a floppy), it turns your screen
  670. Upside Down!  Nifty.  You can still USE the screen upside down - it just
  671. looks a bit weird.  It uses the DoIO() vector, the TD Read vector, starts
  672. at SysStkLower, and that's about it.  It stays around via CoolCapture. 
  673. Thanks to Martyn at 17Bit Software in England for being the first to send
  674. this to me.
  675.  
  676. Thanks also to Robb Walton for being the first to send one of the other
  677. ones.
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                                      10
  725.  
  726.  
  727.  
  728.  
  729.  
  730.                               - Virus Notes -
  731.  
  732. These are things that you probably should know, but may not, about
  733. what can happen with Viruses.
  734.  
  735.            - If you are trying to format a disk, and you always get a
  736.           message that Cylinder #0 of the disk is bad, it's quite
  737.           possible you have a virus in RAM (or a bad disk).  This is
  738.           because when the Formatter writes to block 0, some viruses
  739.           will prevent this (trying to save themselves).  When the
  740.           formatter reads the block back to verify, it's not the same
  741.           and it panics.
  742.  
  743.            - Some commercial programs will not work with some viruses
  744.           in RAM.
  745.  
  746.            - Not all computer failures are caused by viruses!  If you
  747.           are having problems, and you have checked your disks with
  748.           VirusX (and it reports them as clean), try looking elsewhere
  749.           for the problem.
  750.  
  751.            - There is at least one virus that can (more or less
  752.           accidentally) hit hard disks.  Some of the viruses use the
  753.           DoIO() vector to watch for any read (or write) attempts at
  754.           block 0.  Unfortunately, they do not always make sure that
  755.           it is block 0 of the Floppy drive.  If someone is writing to
  756.           block 0 of the hard disk, and the virus intercepts this, it
  757.           can write itself to the hard disk.  The virus CANNOT load
  758.           from hard disk - the hard disk's boot block is never
  759.           executed.  However, if your hard disk is an FFS volume, then
  760.           writing the virus to it will have the effect of changing it
  761.           to an OFS volume, making what's on it unusable.  You can fix
  762.           this with DiskDoctor (I believe), or using DiskX.
  763.  
  764.            - VirusX may NOT find some viruses if you run it after the
  765.           virus is already loaded.  In some cases - like the Lamer
  766.           Exterminator virus - VirusX is sees what the virus wants it
  767.           to see, not what's really there.  Run VirusX BEFORE you run
  768.           anything else, or BEFORE you load any suspicious disks.
  769.  
  770. Version Notes have been moved from the documentation file to the source
  771. code file.  Please read VirusX.C for the version history of VirusX.
  772.  
  773. I'd like to thank Lars Wilklund, Jason Allen Smith, Bruce Dawson,
  774. Robb Walton, Pete Foley, and all the others whose names I've forgotten who
  775. have sent me disks (And the many people who have written to me, but
  776. whom I have not been able to answer!  I do read your letters!)
  777.  
  778. Mucho thanks also to Dan James, who's been helping me all along,
  779. and who did a lot of the finding out about the IRQ Virus.
  780.  
  781. (And to Ian Sewell, for 2 million points worth of MUD treasure which
  782. I never got...)
  783.  
  784.     ...Steve
  785.  
  786.  
  787.  
  788.  
  789.  
  790.                                      11
  791.  
  792.  
  793. The Xeno virus showed up just before I was about to release this
  794. version, and has been added.  VirusX only knows how to remove this
  795. virus from RAM - NOT how to get it off your disks.  
  796.  
  797. The Xeno virus does no damage that I can see.  It has the word
  798. 'fastfilesystem' embedded in it, but as far as I can tell, this is
  799. only to make sure that it does NOT infect that file, so your
  800. hard disk will remain safe.  It will also not infect any file which
  801. contains any non-alphabetical character (ie, it will infect
  802. 'Hello' but not 'Hello.exe').  
  803.  
  804. If VirusX reports that the virus is in RAM, you should take the
  805. version of KV included with this archive, and check every file
  806. from your startup-sequence, as well as any other programs you've
  807. run that session.
  808.  
  809. If the Xeno virus is found anywhere, it would be a good idea
  810. to check your entire HD (if you have one), and any floppies you
  811. used recently - This virus spreads like wildfire!  Any file that
  812. was Opened, or loaded, or even looked at close enough (Lock()'ed)
  813. will be infected.
  814.  
  815. That brings to 4 the number of Non-Bootblock viruses this version
  816. of VirusX can handle.  (IRQ, RLamer, BGS-9, and Xeno).  I'm always
  817. interested in seeing more non-bootblock viruses!
  818.  
  819. Note also that there is a problem with the way this version of 
  820. VirusX removes the Revenge of the Lamer virus from RAM.  It will
  821. remove it all right, but the machine will probably crash, and
  822. you will probably have to power down to get things back to
  823. normal - I'd rather release it with this bug than make people
  824. wait for me to find the time to fix it.  I will release an update
  825. when I can.
  826.  
  827. You'll probably also notice that this version is quite a bit bigger
  828. than the previous one.  I hope to have some time to spend 
  829. shrinking it before I release the update to this one... but for now
  830. yes, it's about 7K bigger than the last one.  It's current file
  831. size is 19016 Bytes.
  832.  
  833. This version of VirusX was compiled with Lattice C 5.04, and uses
  834. my SimpleRequest() function to generate the requesters.  The source
  835. for SimpleRequest() is available separately from quality PD
  836. collections everywhere.  8-)  With these requesters, you need only
  837. hit the first letter of the gadget name to make something happen
  838. (or you can click on it).  For requesters with only one gadget,
  839. you can usually just hit return.
  840.  
  841.             ...Steve
  842. things that you probably should know, but may not, about
  843. what can happen with Viruses.
  844.  
  845.            - If you are trying to format a disk, and you always get a
  846.           message that Cylinder #0 of the disk is bad, it's quite
  847.           possible you have a virus in RAM (or a bad disk).  This is
  848.           because when the Formatter w